<?php

namespace Mouta\SeowebBundle\Entity;

use Doctrine\ORM\Mapping as ORM;
use Mouta\SeowebBundle\Util;





/**
 * Mouta\SeowebBundle\Entity\Pagina
 *
 * @ORM\Table()
 * @ORM\Entity
 */
class Pagina
{
    /**
     * @var integer $id
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string $url
     *
     * @ORM\Column(name="url", type="string", length=255)
     */
    private $url;

    /**
     * @var string $nombre
     *
     * @ORM\Column(name="nombre", type="string", length=255)
     */
    private $nombre;

    /**
     * @var string $descripcion
     *
     * @ORM\Column(name="descripcion", type="text")
     */
    private $descripcion;

    /** 
     * @ORM\ManyToOne(targetEntity="Mouta\SeowebBundle\Entity\Usuario", inversedBy="pagina") 
     * @ORM\JoinColumn(name="usuario_id", referencedColumnName="id")
     */
    private $usuario;
    
    /**
     * @ORM\ManyToMany(targetEntity="Mouta\SeowebBundle\Entity\Categoria", inversedBy="pagina")
     * @ORM\JoinTable(name="pagina_categoria")
     */
   protected $categoria;
   
   /**
     * @var string $asignacion
     *
     * @ORM\OneToMany(targetEntity="Mouta\SeowebBundle\Entity\Asignacion", mappedBy="pagina")
     */
    
    private $asignacion;
    
    /**
     * @var string $click
     *
     * @ORM\OneToMany(targetEntity="Mouta\SeowebBundle\Entity\Click", mappedBy="pagina")
     */
    
    private $click;

    /**
     * @var string $slug
     *
     * @ORM\Column(name="slug", type="string", length=255)
     */
    private $slug;

    /**
     * Constructor
     */
    public function __construct()
    {
        $this->categoria = new \Doctrine\Common\Collections\ArrayCollection();
        
    }
    
    /**
     * Get id
     *
     * @return integer 
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set url
     *
     * @param string $url
     * @return Pagina
     */
    public function setUrl($url)
    {
        $this->url = $url;
    
        return $this;
    }

    /**
     * Get url
     *
     * @return string 
     */
    public function getUrl()
    {
        return $this->url;
    }

    /**
     * Set nombre
     *
     * @param string $nombre
     * @return Pagina
     */
    public function setNombre($nombre)
    {
        $this->nombre = $nombre;
        $this->slug = \Mouta\SeowebBundle\Util\Util::getSlug($nombre);
    }

    /**
     * Get nombre
     *
     * @return string 
     */
    public function getNombre()
    {
        return $this->nombre;
    }

    /**
     * Set descripcion
     *
     * @param string $descripcion
     * @return Pagina
     */
    public function setDescripcion($descripcion)
    {
        $this->descripcion = $descripcion;
    
        return $this;
    }

    /**
     * Get descripcion
     *
     * @return string 
     */
    public function getDescripcion()
    {
        return $this->descripcion;
    }

    /**
     * Set usuario
     *
     * @param Mouta\SeowebBundle\Entity\Usuario $usuario
     * @return Pagina
     */
    public function setUsuario(\Mouta\SeowebBundle\Entity\Usuario $usuario = NULL)
    {
        $this->usuario = $usuario;
    
        return $this;
    }

    /**
     * Get usuario
     *
     * @return Mouta\SeowebBundle\Entity\Usuario 
     */
    public function getUsuario()
    {
        return $this->usuario;
    }

    /**
     * Add categoria
     *
     * @param Mouta\SeowebBundle\Entity\Categoria $categoria
     * @return Pagina
     */
    public function addCategoria(\Mouta\SeowebBundle\Entity\Categoria $categoria)
    {
        $this->categoria[] = $categoria;
    
        return $this;
    }

    /**
     * Remove categoria
     *
     * @param Mouta\SeowebBundle\Entity\Categoria $categoria
     */
    public function removeCategoria(\Mouta\SeowebBundle\Entity\Categoria $categoria)
    {
        $this->categoria->removeElement($categoria);
    }

    /**
     * Get categoria
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getCategoria()
    {
        return $this->categoria;
    }
    
     /**
     * Set categoria
     *
     * @param string $categoria
     * @return Categoria
     */
    public function setCategoria($categoria)
    {
        $this->categoria = $categoria;
    
        return $this;
    }

    /**
     * Add asignacion
     *
     * @param Mouta\SeowebBundle\Entity\Asignacion $asignacion
     * @return Pagina
     */
    public function addAsignacion(\Mouta\SeowebBundle\Entity\Asignacion $asignacion)
    {
        $this->asignacion[] = $asignacion;
    
        return $this;
    }

    /**
     * Remove asignacion
     *
     * @param Mouta\SeowebBundle\Entity\Asignacion $asignacion
     */
    public function removeAsignacion(\Mouta\SeowebBundle\Entity\Asignacion $asignacion)
    {
        $this->asignacion->removeElement($asignacion);
    }

    /**
     * Get asignacion
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getAsignacion()
    {
        return $this->asignacion;
    }

    /**
     * Add click
     *
     * @param Mouta\SeowebBundle\Entity\Click $click
     * @return Pagina
     */
    public function addClick(\Mouta\SeowebBundle\Entity\Click $click)
    {
        $this->click[] = $click;
    
        return $this;
    }

    /**
     * Remove click
     *
     * @param Mouta\SeowebBundle\Entity\Click $click
     */
    public function removeClick(\Mouta\SeowebBundle\Entity\Click $click)
    {
        $this->click->removeElement($click);
    }

    /**
     * Get click
     *
     * @return Doctrine\Common\Collections\Collection 
     */
    public function getClick()
    {
        return $this->click;
    }

    /**
     * Set slug
     *
     * @param string $slug
     * @return pagina
     */
    public function setSlug($slug)
    {
        $this->slug = $slug;

        return $this;
    }

    /**
     * Get slug
     *
     * @return string
     */
    public function getSlug()
    {
        return $this->slug;
    }

    public function __toString()
    {
        return $this->getNombre();
    }


}